Skip to main content

Types of Inheritance

Inheritance – Definition (Common to All)​

Inheritance is an object-oriented programming feature where one class (child/derived) acquires properties and behaviors (methods) from another class (parent/base). This promotes code reuse and establishes a parent-child relationship.


Types of Inheritance​

TypeDescription
SingleOne child class inherits from one parent class
MultilevelA class is derived from another derived class
HierarchicalMultiple classes inherit from one parent class
MultipleA class inherits from more than one parent class (supported only in Python, C++)
HybridA combination of multiple types of inheritance

Note: Java and C# do not support multiple inheritance using classes, but support it via interfaces.


C++​

Supported Types: Single, Multilevel, Hierarchical, Multiple, Hybrid​

Syntax​

class Base {
// base members
};

class Derived : access_specifier Base {
// derived members
};

Example​

#include <iostream>
using namespace std;

class Animal {
public:
void eat() {
cout << "Eating..." << endl;
}
};

class Dog : public Animal {
public:
void bark() {
cout << "Barking..." << endl;
}
};

int main() {
Dog d;
d.eat();
d.bark();
return 0;
}

C#​

Supported Types: Single, Multilevel, Hierarchical​

Multiple inheritance via interfaces only.

Syntax​

class Parent {
// base class
}

class Child : Parent {
// derived class
}

Example​

using System;

class Animal {
public void Eat() {
Console.WriteLine("Eating...");
}
}

class Dog : Animal {
public void Bark() {
Console.WriteLine("Barking...");
}
}

class Program {
static void Main() {
Dog d = new Dog();
d.Eat();
d.Bark();
}
}

Java​

Supported Types: Single, Multilevel, Hierarchical​

Multiple inheritance via interfaces only.

Syntax​

class Parent {
// base class
}

class Child extends Parent {
// derived class
}

Example​

class Animal {
void eat() {
System.out.println("Eating...");
}
}

class Dog extends Animal {
void bark() {
System.out.println("Barking...");
}
}

public class Main {
public static void main(String[] args) {
Dog d = new Dog();
d.eat();
d.bark();
}
}

Python​

Supported Types: All – Single, Multilevel, Hierarchical, Multiple, Hybrid​

Syntax​

class Parent:
pass

class Child(Parent):
pass

Example​

class Animal:
def eat(self):
print("Eating...")

class Dog(Animal):
def bark(self):
print("Barking...")

d = Dog()
d.eat()
d.bark()

JavaScript​

Supported Types: Single, Multilevel​

JavaScript uses prototypes or class-based (ES6) inheritance.

Syntax​

class Parent {
// base class
}

class Child extends Parent {
// derived class
}

Example​

class Animal {
eat() {
console.log("Eating...");
}
}

class Dog extends Animal {
bark() {
console.log("Barking...");
}
}

const d = new Dog();
d.eat();
d.bark();

TypeScript​

Supported Types: Same as JavaScript – Single, Multilevel​

Supports interfaces for multiple inheritance-like behavior.

Syntax​

class Parent {
// base class
}

class Child extends Parent {
// derived class
}

Example​

class Animal {
eat(): void {
console.log("Eating...");
}
}

class Dog extends Animal {
bark(): void {
console.log("Barking...");
}
}

let d = new Dog();
d.eat();
d.bark();

Summary Table​

LanguageSingleMultilevelHierarchicalMultipleHybridMultiple via Interface
C++✅✅✅✅✅❌
C#✅✅✅❌❌✅
Java✅✅✅❌❌✅
Python✅✅✅✅✅❌
JavaScript✅✅❌❌❌❌
TypeScript✅✅❌❌❌✅ (with interfaces)